/**
 * 数组 有序列表组成的数据结构 可迭代的
 */
// 1.数组创建 直接字面量 [] 特点：数组元素可以是任意数据类型
// var arr = ['hello',10,true,null,undefined,{name:'tom'}];
// console.log(arr);
// 2.访问数组元素  arr[index] 下标/索引 从0开始 
// console.log(arr[4]);

/**
 * 数组api 
 *  1.pop 从数组末尾删除一个数组元素
 */
// arr.pop();
// console.log(arr);
/**
 * 2.push 从数组末尾添加数组元素 
 */
// arr.push('terry','larry');
// console.log(arr);

/**
 * 3.shift 从数组头部开始删除一个数组元素
 */
// arr.shift();
// console.log(arr);

/**
 * 4.unshift 从数组头部开始添加数组元素
 */
// arr.unshift('terry','larry');
// console.log(arr);

/**
 * 5. splice 指定位置删除或者增加数组元素
 *  参数：index howmany(0/正数) xxx xxx
 */
// var arr = ['hello',10,true,null,undefined];
// 指定位置删除 
// arr.splice(2,2);
// console.log(arr);

// 指定位置增加数组元素 terry larry
// arr.splice(2,0,'terry','larry');
// console.log(arr);

/**
 * 迭代方法 every some filter map forEach
 */

/**
 * map 映射每一个数组元素
*/
// var arr = [10,20,30,40,50];
// var result = arr.map(function(item,index,arr){
//     // item 表示数组每一项 
//     // index 数组每一项对应的索引
//     // arr 数组本身
//     console.log(item,index,arr,'-----')
//     return item + 10
// });
// console.log(result,'返回值');

/**
 * filter 过滤符合条件的数组元素
 */
// var arr = [10,20,30,40,50];
// var result = arr.filter(function(item,index,arr){
//     return item > 30
// });
// console.log(result);

/**
 * forEach 循环遍历数组元素 for循环加强版 
 * 没有返回值 不需要return 
 */
var arr = [10,20,30,40,50];
for(let i=0;i<arr.length;i++){
    console.log(arr[i])
}
for(let index in arr){
    console.log(arr[index])
}
// 实现了迭代器接口的数据结构可以使用for of
for(let ind of arr){
    console.log(arr[ind])
}
// arr.forEach(function(item,index,arr){
//     item = item + 1;
//     console.log(item);
// });

// 数组创建 构造函数 
// let arr1 = new Array('terry','larry');
// let arr2 = new Array(10);//创建数组长度为10数组
// let arr3 = new Array(10.1);//报错
// console.log(arr1);